Robots are automated devices that are able to manipulate objects using a series of mechanical links. The links are interconnected via motor/actuator-driven robotic joints. Each joint in a typical robot represents an independent control variable, i.e., a degree of freedom. End-effectors are the particular devices located at the end of a robot manipulator used for performing a task at hand, such as grasping a work tool or capturing a 3D image of an object. Therefore, precise control of a robot may be organized by the level of task specification: object level control, i.e., the ability to control the behavior of an object held in a single or cooperative grasp of a robot, end-effector control, and joint level control. Collectively, the various control levels cooperate to achieve the required levels of robotic mobility, dexterity, and work task-related functionality.
Robots vary in complexity ranging from conventional 3-axis or 6-axis robotic arms to highly complex humanoid robots, i.e., robots having human-like structure or appearance, whether as a full body, a torso, and/or an appendage. The structural complexity of a humanoid robot depends largely upon the nature of the work task being performed. Typically, each robot has its own dedicated programming environment wherein expert users program the various tasks that must be executed according to a particular task sequence. The programming code is then compiled, with communications protocols rewritten whenever new peripheral devices and other hardware elements are added to the robot. As a result, certain task programming inefficiencies may exist in the art, particularly in larger networked environments utilizing robots of differing designs and/or with a wide disparity in relative complexity.